package io.xccit.mapper;

import io.xccit.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Xccit
 * @Date 2022-12-03
 * @Description
 */
public interface IUserMapper {
    int addUser(User user);
    List<User> findAll();
    User findByID(@Param("id") Integer id);
    int deleteUser(@Param("id") Integer id);
    int updateUser(User user);
    User checkLogin(@Param("username") String username, @Param("password") String password);

    /**
     * 查询一个User并以Map容器接收
     * @param id
     * @return
     */
    Map<String,Object> findUserByIDToMap(@Param("id") Integer id);

    /**
     * 查询所有用户信息并封装到map
     * @return
     */
    List<Map<String,Object>> findAllUserToMap();
    /**
     * 查询所有用户信息并封装到map第二种方法
     * @return
     */
    @MapKey("id") //使用每一个用户的id为Map的key
    Map<String,Object> findAllUserToMap2();

    /**
     * 模糊查询 使用username
     * @param param
     * @return
     */
    List<User> findByUserName(@Param("param") String param);

    /**
     * 批量删除
     * @return
     */
    int deleteMoreUser(@Param("ids") String ids);

    /**
     * 添加user并获取自增主键
     * @param user
     * @return
     */
    int insertUserGetID(User user);
}

